%ifndef __NASMX_WS2_32_INC__
%define __NASMX_WS2_32_INC__

IMPORT FreeAddrInfoW, 4
IMPORT GetAddrInfoW, 16
IMPORT GetNameInfoW, 28
IMPORT WEP, 0
IMPORT WPUCompleteOverlappedRequest, 20
IMPORT WSAAccept, 20
IMPORT WSAAddressToStringA, 20
IMPORT WSAAddressToStringW, 20
IMPORT WSAAsyncGetHostByAddr, 28
IMPORT WSAAsyncGetHostByName, 20
IMPORT WSAAsyncGetProtoByName, 20
IMPORT WSAAsyncGetProtoByNumber, 20
IMPORT WSAAsyncGetServByName, 24
IMPORT WSAAsyncGetServByPort, 24
IMPORT WSAAsyncSelect, 16
IMPORT WSACancelAsyncRequest, 4
IMPORT WSACancelBlockingCall, 0
IMPORT WSACleanup, 0
IMPORT WSACloseEvent, 4
IMPORT WSAConnect, 28
IMPORT WSACreateEvent, 0
IMPORT WSADuplicateSocketA, 12
IMPORT WSADuplicateSocketW, 12
IMPORT WSAEnumNameSpaceProvidersA, 8
IMPORT WSAEnumNameSpaceProvidersW, 8
IMPORT WSAEnumNetworkEvents, 12
IMPORT WSAEnumProtocolsA, 12
IMPORT WSAEnumProtocolsW, 12
IMPORT WSAEventSelect, 12
IMPORT WSAGetLastError, 0
IMPORT WSAGetOverlappedResult, 20
IMPORT WSAGetQOSByName, 12
IMPORT WSAGetServiceClassInfoA, 16
IMPORT WSAGetServiceClassInfoW, 16
IMPORT WSAGetServiceClassNameByClassIdA, 12
IMPORT WSAGetServiceClassNameByClassIdW, 12
IMPORT WSAHtonl, 12
IMPORT WSAHtons, 12
IMPORT WSAInstallServiceClassA, 4
IMPORT WSAInstallServiceClassW, 4
IMPORT WSAIoctl, 36
IMPORT WSAIsBlocking, 0
IMPORT WSAJoinLeaf, 32
IMPORT WSALookupServiceBeginA, 12
IMPORT WSALookupServiceBeginW, 12
IMPORT WSALookupServiceEnd, 4
IMPORT WSALookupServiceNextA, 16
IMPORT WSALookupServiceNextW, 16
IMPORT WSANSPIoctl, 32
IMPORT WSANtohl, 12
IMPORT WSANtohs, 12
IMPORT WSAProviderConfigChange, 12
IMPORT WSARecv, 28
IMPORT WSARecvDisconnect, 8
IMPORT WSARecvFrom, 36
IMPORT WSARemoveServiceClass, 4
IMPORT WSAResetEvent, 4
IMPORT WSASend, 28
IMPORT WSASendDisconnect, 8
IMPORT WSASendTo, 36
IMPORT WSASetBlockingHook, 4
IMPORT WSASetEvent, 4
IMPORT WSASetLastError, 4
IMPORT WSASetServiceA, 12
IMPORT WSASetServiceW, 12
IMPORT WSASocketA, 24
IMPORT WSASocketW, 24
IMPORT WSAStartup, 8
IMPORT WSAStringToAddressA, 20
IMPORT WSAStringToAddressW, 20
IMPORT WSAUnhookBlockingHook, 0
IMPORT WSAWaitForMultipleEvents, 20
IMPORT WSCDeinstallProvider, 8
IMPORT WSCEnableNSProvider, 8
IMPORT WSCEnumProtocols, 16
IMPORT WSCGetProviderPath, 16
IMPORT WSCInstallNameSpace, 20
IMPORT WSCInstallProvider, 20
IMPORT WSCUnInstallNameSpace, 4
IMPORT WSCUpdateProvider, 20
IMPORT WSCWriteNameSpaceOrder, 8
IMPORT WSCWriteProviderOrder, 8
IMPORT __WSAFDIsSet, 8
IMPORT accept, 12
IMPORT bind, 12
IMPORT closesocket, 4
IMPORT connect, 12
IMPORT freeaddrinfo, 4
IMPORT getaddrinfo, 16
IMPORT gethostbyaddr, 12
IMPORT gethostbyname, 4
IMPORT gethostname, 8
IMPORT getnameinfo, 28
IMPORT getpeername, 12
IMPORT getprotobyname, 4
IMPORT getprotobynumber, 4
IMPORT getservbyname, 8
IMPORT getservbyport, 8
IMPORT getsockname, 12
IMPORT getsockopt, 20
IMPORT htonl, 4
IMPORT htons, 4
IMPORT inet_addr, 4
IMPORT inet_ntoa, 4
IMPORT ioctlsocket, 12
IMPORT listen, 8
IMPORT ntohl, 4
IMPORT ntohs, 4
IMPORT recv, 16
IMPORT recvfrom, 24
IMPORT select, 20
IMPORT send, 16
IMPORT sendto, 24
IMPORT setsockopt, 20
IMPORT shutdown, 8
IMPORT socket, 12

%ifdef UNICODE

%define FreeAddrInfo FreeAddrInfoW
%define GetNameInfo GetNameInfoW
%define WSAAddressToString WSAAddressToStringW
%define WSADuplicateSocket WSADuplicateSocketW
%define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersW
%define WSAEnumProtocols WSAEnumProtocolsW
%define WSAGetServiceClassInfo WSAGetServiceClassInfoW
%define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdW
%define WSAInstallServiceClass WSAInstallServiceClassW
%define WSALookupServiceBegin WSALookupServiceBeginW
%define WSALookupServiceNext WSALookupServiceNextW
%define WSASetService WSASetServiceW
%define WSASocket WSASocketW
%define WSAStringToAddress WSAStringToAddressW

%else  ;// ANSI

%define FreeAddrInfo FreeAddrInfoA
%define GetNameInfo GetNameInfoA
%define WSAAddressToString WSAAddressToStringA
%define WSADuplicateSocket WSADuplicateSocketA
%define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersA
%define WSAEnumProtocols WSAEnumProtocolsA
%define WSAGetServiceClassInfo WSAGetServiceClassInfoA
%define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdA
%define WSAInstallServiceClass WSAInstallServiceClassA
%define WSALookupServiceBegin WSALookupServiceBeginA
%define WSALookupServiceNext WSALookupServiceNextA
%define WSASetService WSASetServiceA
%define WSASocket WSASocketA
%define WSAStringToAddress WSAStringToAddressA

%endif  ;// UNICODE

%endif  ;// __NASMX_WS2_32_INC__